﻿
Imports System.Data
Imports EVOLTA.Promocion.Bl.Be
Imports EVOLTA.Promocion.Bl.Bc

Partial Class reporteCobranzas
    Inherits System.Web.UI.Page

#Region "Instancias a las Capas de Entidad y Negocio"

    Dim objnegProyecto As New EVOLTA.Promocion.Bl.Bc.Rproyecto
    Dim objnegSeparacionVenta As New EVOLTA.Promocion.Bl.Bc.RseparacionVenta

#End Region

#Region "Variables Globales"
    Public dtbInformacion As New DataTable
#End Region

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If (Not Page.IsPostBack) And (Request.Params("__EVENTTARGET") Is Nothing) Then
            Me.Cargar_proyectos()
            Me.Cargar_torres()

            ' Reinicializando controles
            Me.lblSubTitulo2.ForeColor = Drawing.Color.Red
            Me.lblSubTitulo3.Text = String.Empty
            Me.lnkBtnExportar.Enabled = False
        Else
            If Me.ddlProyecto.SelectedItem.Value.ToString.Trim.Equals("%") Or Me.txtTipoCambio.Text.Trim() = String.Empty Then
                Me.lblSubTitulo2.Text = String.Empty
                Me.lnkBtnExportar.Enabled = False
                Me.lblSubTitulo3.Text = "Para realizar una consulta debe de seleccionar un PROYECTO e ingresar el tipo de cambio."
                Me.lblSubTitulo3.ForeColor = Drawing.Color.Red
            Else
                Me.lnkBtnExportar.Enabled = True
                Me.lblSubTitulo2.ForeColor = Drawing.Color.Black
                Me.lblSubTitulo3.ForeColor = Drawing.Color.Black

                Me.lblSubTitulo2.Text = "Información correspondiente al proyecto " & Me.ddlProyecto.SelectedItem.Text & " y torre " & Me.ddlTorre.SelectedItem.Text
                Me.lblSubTitulo2a.Text = "Tipo de Cambio: " & Me.txtTipoCambio.Text.Trim() & " - Fecha: " & Date.Now.ToShortDateString()

                Dim strSubtitulo3 As String = String.Empty

                If Not Me.txtNroDocumento.Text.Trim.Equals(String.Empty) Then
                    strSubtitulo3 = "Filtrado por N° Documento del Cliente: " & Me.txtNroDocumento.Text.Trim()
                End If

                If Not Me.txtNombreCliente.Text.Trim.Equals(String.Empty) Then
                    If Not Me.txtNroDocumento.Text.Trim.Equals(String.Empty) Then
                        strSubtitulo3 = strSubtitulo3 & " | "
                    Else
                        strSubtitulo3 = "Filtrado por "
                    End If

                    strSubtitulo3 = strSubtitulo3 & "Nombre del Cliente: " & Me.txtNombreCliente.Text.Trim.ToUpper()
                End If

                Me.lblSubTitulo3.Text = strSubtitulo3

                Me.cargarInformacion()
            End If

            ViewState("vst_subtitulo_2") = Me.lblSubTitulo2.Text
            ViewState("vst_subtitulo_2a") = Me.lblSubTitulo2a.Text
            ViewState("vst_subtitulo_3") = Me.lblSubTitulo3.Text
        End If
    End Sub

    Private Sub Cargar_proyectos()
        Dim dtbProyectos As New DataTable
        dtbProyectos = objnegProyecto.negCargar_proyectos("EPAZCENPR")

        Me.ddlProyecto.DataSource = dtbProyectos
        Me.ddlProyecto.DataTextField = "descProyecto"
        Me.ddlProyecto.DataValueField = "Id"
        Me.ddlProyecto.DataBind()
    End Sub

    Private Sub Cargar_torres()
        Dim dtbTorres As New DataTable
        dtbTorres = objnegProyecto.negCargar_torres("EPAZCENPR", 5)

        Me.ddlTorre.DataSource = dtbTorres
        Me.ddlTorre.DataTextField = "descTorre"
        Me.ddlTorre.DataValueField = "Id"
        Me.ddlTorre.DataBind()
    End Sub

    Private Sub cargarInformacion()
        Dim strProyectoId As String = Me.ddlProyecto.SelectedItem.Value.ToString()
        Dim strTorreId As String = Me.ddlTorre.SelectedItem.Value.ToString()
        Dim strNroDocumento As String = Me.txtNroDocumento.Text.Trim()
        Dim strNombreCliente As String = Me.txtNombreCliente.Text.Trim()
        Dim decTipoCambio As Decimal = Me.txtTipoCambio.Text.Trim()

        Me.dtbInformacion = objnegSeparacionVenta.negCargar_reporte_cobranzas("EPAZCENPR", strProyectoId, strTorreId, decTipoCambio, strNroDocumento, strNombreCliente)

        Me.dtbInformacion.Columns.RemoveAt(0)

        Dim dvwInformacion As New DataView
        dvwInformacion = Me.dtbInformacion.DefaultView

        If Me.dtbInformacion.Rows.Count > 0 Then
            Session("ssn_Exportar") = dvwInformacion.ToTable

            ' Ubicando las columnas
            Me.dtbInformacion.Columns("Proy").SetOrdinal(0)
            Me.dtbInformacion.Columns("Dpto").SetOrdinal(1)
            Me.dtbInformacion.Columns("Est").SetOrdinal(2)
            Me.dtbInformacion.Columns("Dep").SetOrdinal(3)
            Me.dtbInformacion.Columns("DNI").SetOrdinal(4)
            Me.dtbInformacion.Columns("Cliente").SetOrdinal(5)
            Me.dtbInformacion.Columns("Posicion").SetOrdinal(6)
            Me.dtbInformacion.Columns("Soles S/.").SetOrdinal(7)
            Me.dtbInformacion.Columns("Status").SetOrdinal(8)
            Me.dtbInformacion.Columns("Comentario").SetOrdinal(9)
            Me.dtbInformacion.Columns("VCTO").SetOrdinal(10)
            Me.dtbInformacion.Columns("DIAS VENC.").SetOrdinal(11)
            Me.dtbInformacion.Columns("F. PAGO").SetOrdinal(12)

            Me.rptReporteCobranzas.DataSource = Me.dtbInformacion
            Me.rptReporteCobranzas.DataBind()
        End If
    End Sub

    Protected Sub lnkBtnExportar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lnkBtnExportar.Click
        Dim strNombreArchivo As String = "Reporte de Cobranzas_" & Microsoft.VisualBasic.Right("0" & Date.Now.Day.ToString(), 2) & Microsoft.VisualBasic.Right("0" & Date.Now.Month.ToString(), 2) & Date.Now.Year.ToString() & "_" & Microsoft.VisualBasic.Right("0" & Date.Now.Hour.ToString(), 2) & Microsoft.VisualBasic.Right("0" & Date.Now.Minute.ToString(), 2) & Microsoft.VisualBasic.Right("0" & Date.Now.Second.ToString(), 2)
        Dim strTituloHoja As String = "REPORTE DE COBRANZAS"
        Dim strSubTituloHoja As String = ViewState("vst_subtitulo_2").ToString()

        Dim dtbInformacion As New DataTable

        dtbInformacion = Session("ssn_Exportar")

        If dtbInformacion.Rows.Count > 0 Then
            dtbInformacion.Columns.RemoveAt(0)
            dtbInformacion.Columns.RemoveAt(0)
            dtbInformacion.Columns.RemoveAt(0)

            dtbInformacion.Columns.RemoveAt(0)
            dtbInformacion.Columns.RemoveAt(0)
            dtbInformacion.Columns.RemoveAt(0)
            dtbInformacion.Columns.RemoveAt(0)

            ' Cambio de nombre de columnas para una buena exportación            
            'dtbInformacion.Columns("Deposito").ColumnName = "Depósito"
            'dtbInformacion.Columns("Estacionamiento").ColumnName = "Estac."
            'dtbInformacion.Columns("Dias").ColumnName = "Días"
            'dtbInformacion.Columns("ProxVcmtoSemanas").ColumnName = "Próx. Vcmto Semanas"
            'dtbInformacion.Columns("MorosidadMes").ColumnName = "Morosidad (Mes)"
            'dtbInformacion.Columns("MorosidadDias").ColumnName = "Morosidad (Días)"
            'dtbInformacion.Columns("Proy").ColumnName = "Proy."
            'dtbInformacion.Columns("NroOperacion").ColumnName = "N° Operación"

            Dim objInfraestructura As New Infraestructura
            Dim strOpcionalCabecera As String = String.Empty

            Dim strSubtitulo3 As String = ViewState("vst_subtitulo_3").ToString() & " - " & ViewState("vst_subtitulo_2a").ToString()

            strOpcionalCabecera = "<tr><th colspan=""" & dtbInformacion.Columns.Count & """>" & strSubtitulo3 & "</th></tr>"
            objInfraestructura.Exportar_a_excel(strNombreArchivo, strTituloHoja, strSubTituloHoja, dtbInformacion, Nothing, strOpcionalCabecera)
        End If
    End Sub

    Protected Sub btnCancelar_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Me.ModalPopupExtender.Hide()
    End Sub

End Class